package com.ylsk.check.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ylsk.common.annotation.Excel;
import com.ylsk.common.core.domain.VOBaseEntity;
import com.ylsk.system.domain.FileSimple;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 报备信息对象 ins_report_info
 *
 * @author yangsy
 * @date 2023-12-13
 */
@Data
public class ReportInfoVO extends VOBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long reportInfoId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 报备单号（流水号按照一定的规则生成） */
    @Excel(name = "报备单号")
    private String reportNum;

    /** 备案日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "备案日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date filingDate;

    /** 建设单位 */
    @Excel(name = "建设单位")
    private String buildUnit;

    /** 施工单位 */
    @Excel(name = "施工单位")
    private String construnctionUnit;

    /** 施工内容 */
    @Excel(name = "施工内容")
    private String construnctionContent;

    /** 许可时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "许可时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date licenseTime;

    /** 批准文号 */
   // @Excel(name = "批准文号")
    private String approvalNumber;

    /** 施工开始路段id */
    private Long expresswayStartSectionId;

    /** 施工开始路段名称 */
    @Excel(name = "施工开始路段名称")
    private String expresswayStartSectionName;

    /** 施工结束路段id */
    private Long expresswayEndSectionId;

    /** 施工结束路段名称 */
    @Excel(name = "施工结束路段名称")
    private String expresswayEndSectionName;

    /** 施工开始方向(上行 下行 上下行) */
    @Excel(name = "施工开始方向",readConverterExp = "0=上行,1=下行,2=上下行")
    private String constructionStartDirection;

    /** 施工结束方向*/
    @Excel(name = "施工结束方向",readConverterExp = "0=上行,1=下行,2=上下行")
    private String constructionEndDirection;

    /** 施工开始桩号km */
    @Excel(name = "施工开始桩号km")
    private String constructionStartKm;

    /** 施工开始桩号m */
    //@Excel(name = "施工开始桩号m")
    private String constructionStartM;

    /** 施工结束桩号km */
    @Excel(name = "施工结束桩号km")
    private String constructionEndKm;

    /** 施工结束桩号m */
    //@Excel(name = "施工结束桩号m")
    private String constructionEndM;

    /** 施工类型 */
    @Excel(name = "施工类型",readConverterExp = "0=占道施工,1=非占道施工")
    private Integer constructionType;

    /** 现场负责人 */
    @Excel(name = "现场负责人")
    private String head;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String telePhone;

    /** 施工开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "施工开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date construnctionStartTime;

    /** 施工完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "施工完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date construnctionEndTime;

    /** 施工开始时段 */
    @JsonFormat(pattern = "HH:mm:ss")
    private Date startTimePeriod;

    /** 施工结束时段 */
    @JsonFormat(pattern = "HH:mm:ss")
    private Date endTimePeriod;

    /** 预计占道时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计占道时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planInTime;

    /** 施工组织方案FileId */
    private Long organizationFileId;

    private List<FileSimple> organizationFile;

    /** 施工许可文件FileId */
    private Long licenseFileId;

    private List<FileSimple> licenseFile;

    /** 交通组织方案FileId */
    private Long trafficFileId;

    private List<FileSimple> trafficFile;

    /** 应急预案FileId */
    private Long emergencyPlanFileId;

    private List<FileSimple> emergencyPlanFile;

    /** 安全培训材料FileId */
    private Long safetyTrainingFileId;

    private List<FileSimple> safetyTrainingFile;

    /** 资质证明材料FileId */
    private Long qualificationCertificationFileId;

    private List<FileSimple> qualificationCertificationFile;

    /** 其他材料FileId */
    private Long otherFileId;

    private List<FileSimple> otherFile;

    /** 备注 */
    private String remark;

    /** 路产赔（补）偿、占用费金额  单位万元 */
    private BigDecimal occupancyFeeAmount;

    /** 0：草稿 1：提交（待接收） 2：通过 3：驳回 */
    @Excel(name = "审核状态",readConverterExp = "0=草稿,1=提交,2=通过,3=驳回")
    private int reportStatus;

    /** 所属大队 */
    private Long deptId;

    /** 所属大队名称 */
    @Excel(name = "所属管辖大队")
    private String deptName;

    /** 审核人 */
    private Long reviewedBy;

    /** 审核人姓名 */
    @Excel(name = "审核人")
    private String reviewedByName;

    /** 审核意见 */
    private String apprComent;

    /** 0：未归档 1：已归档 */
    @Excel(name = "是否归档",readConverterExp = "0=未归档,1=已归档")
    private int isArchived;


    /**
     * 部门联系人电话
     */
    private String deptPhone;

    /**
     * 部门联系人
     */
    private String deptLeader;

    @Excel(name = "施工状态",readConverterExp = "0=未进场,1=非占道施工,2=占道施工,3=撤场,4=结束")
    private Integer constructionStatus;

    /** 业务数据id*/
    private Long businessId;

    /**
     * 表名称
     */
    private String tbName;

    /**
     * 检查记录id
     */
    private Long checkRecordId;

    /**
     * 检查任务id
     */
    private Long checkTaskId;

    /**
     * 基础信息
     */
    private String basicInfo;

    private Map<String,Object> basicInfoMap;
}
